package web.appeloffre;

import java.util.List;

import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import persistence.offre.OffreDeProduit;
import persistence.produitcatalogue.ProduitCatalogue;
import persistence.util.HibernateUtil;
import web.Template;
import web.appeloffre.ChoixAppelOffre;

/**
 * 
 * @author Guillaume
 *
 */
public class FaireAppelOffre extends Template {
	
	private Query query;
	private List offres;
	private ListView<OffreDeProduit> listView;
	private static final String VALEUR_TITRE = "Liste des produits sur lesquels vous pouvez créer un appel d'offre.";
	
	public FaireAppelOffre()
	{
		super();
		add(new Label("titre", VALEUR_TITRE));
		
		SessionFactory sf = HibernateUtil.getSessionFactory();
		Session session = sf.openSession();
		query = session.createQuery("Select p from ProduitCatalogue p where visibilite = :code");
		query.setParameter("code", 0);
		offres = query.list();
		listView = new ListView<OffreDeProduit>("listview", offres) {
			public void populateItem(ListItem item)
			{
				final ProduitCatalogue produit = (ProduitCatalogue) item.getModelObject();
				item.add(new Label("libelle", produit.getLibelle()));
				item.add(new Label("marque", produit.getMarque().getLibelle()));
				item.add(new Label("accessoire",produit.getAccessoire().getLibelle()));
				item.add(new Label("couleur", produit.getCouleur().getLibelle()));
				item.add(new Label("stockage", produit.getStockage().getLibelle()));
				item.add(new Label("systemeexploitation", produit.getSystemeExploitation().getLibelle()));
				item.add(new Label("taille", produit.getTaille().getLibelle()));
				
				Form<?> form = new Form<Object>("choix")
				{
					public void onSubmit()
					{
						setResponsePage(new ChoixAppelOffre(produit));
					}
				};
				item.add(form);
			}
			
		};
		add(listView);
	}

}
